/**
 * @Author taiping
 * @最后修改日期 2022-06-05
 * 重写错误和警告信息
 */

let witLog = {
    /**
     * @description 打印一个 [ title | text ] 样式的信息
     * @param {String} title title text
     * @param {String} info info text
     * @param {String} type style
     */
    witLog(title: string, info: string, type = 'primary') {
        console.log(
            `%c ${title} %c ${info} %c`,
            'background:#0095ff;padding: 2px;border-radius: 3px 0 0 3px;color: #ffffff;font-size: 12px;',
            `background:${color(type)};padding: 2px;border-radius: 0 3px 3px 0;color: #ffffff;font-size: 12px;`,
            'background:transparent'
        )
    },

    /**
     * @description 打印彩色文字
     */
    colorErr(textArr: any) {
        console.log(
            `%c${textArr.map((t: any) => {
                return t.text || ''
            }).join('%c')}`,
            ...textArr.map((t: any) => {
                return `color: ${color(t.type)};`
            })
        )
    },

    /**
     * @description 打印 default 样式的文字
     */
    default(text: any) {
        witLog.colorErr([{ text }])
    },

    /**
     * @description 打印 primary 样式的文字
     */
   primary(text: any) {
        witLog.colorErr([{ text, type: 'primary' }])
    },

    /**
     * @description 打印 success 样式的文字
     */
    success (text: any) {
        witLog.colorErr([{ text, type: 'success' }])
    },

    /**
     * @description 打印 warning 样式的文字
     */
    warning(text: any) {
        witLog.colorErr([{ text, type: 'warning' }])
    },

    /**
     * @description 打印 danger 样式的文字
     */
    error(text: any) {
        witLog.colorErr([{ text, type: 'error' }])
    },
    /**
     *
     * @param err string
     * @param errRouter string
     * @param info string
     * @param type string
     * 打印错误日志整合
     */
   witError(err: any, errRouter: string | undefined, info: any, type: string) {
        let typeText = '报错'
        if (type === 'warning') typeText = '警告'
        console.log(
            `%c ******** ${typeText}信息 ******** %c \n ${err} \n%c ******** ${typeText}路由 ******** %c \n ${errRouter} \n%c ******** ${typeText}位置 ******** %c \n ${info}`,
            'background:#35495E; padding: 2px; border-radius: 3px 0 0 3px; color: #ffffff;',
            `color:${color(type)}`,
            'background:#35495E; padding: 2px; border-radius: 3px 0 0 3px; color: #ffffff;',
            `color:${color(type)}`,
            'background:#35495E; padding: 2px; border-radius: 3px 0 0 3px; color: #ffffff;',
            `color:${color(type)}`,
        )
    },
}
/**
 * @description 返回这个样式的颜色值
 * @param {String} type 样式名称 [ primary | success | warning | danger | text ]
 */
const color = (type = '') => {
    switch (type) {
        case 'primary': return '#0095ff'
        case 'success': return '#00d977'
        case 'warning': return '#ff8e00'
        case 'error': return '#ff0000'
        default: return  '#293448'
    }
}



export { witLog, color }
